/*
 * @Author: your name
 * @Date: 2020-08-09 15:49:56
 * @LastEditTime: 2020-08-09 20:04:11
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \day01\traning\test01\main.go
 */
package main

import "fmt"

// 1.题目：求1+2!+3!+...+20!的和

// 2.程序分析：此程序只是把累加变成了累乘。

// 3.程序源代码：

//===================================
// 1.题目：有一分数序列：2/1，3/2，5/3，8/5，13/8，21/13...求出这个数列的前20项之和。

// 2.程序分析：请抓住分子与分母的变化规律。

// 3.程序源代码：
// func num(n int) (a, b int) {
// 	switch {
// 	case n == 1:
// 		b = 1
// 		a = 2
// 	case n == 2:
// 		b = 2
// 		a = 3
// 	default:
// 		a1, b1 := num(n - 1)
// 		a2, b2 := num(n - 2)
// 		a = a1 + b1
// 		b = a2 + b2
// 	}
// 	return a, b

// }

//===================================

// 1.题目：猴子吃桃问题：猴子第一天摘下若干个桃子，当即吃了一半，还不瘾，又多吃了一个第二天早上又将剩下的桃子吃掉一半，又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时，见只剩下一个桃子了。求第一天共摘了多少。

// 2.程序分析：采取逆向思维的方法，从后往前推断。

// 3.程序源代码：
//===================================

// 1.题目：一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在第10次落地时，共经过多少米？第10次反弹多高？

// 2.程序源代码：
//===================================

// 1.题目：求s=a+aa+aaa+aaaa+aa...a的值，其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)，几个数相加有键盘控制。

// 2.程序分析：关键是计算出每一项的值。

// 3.程序源代码：
//===================================
// 1.判断101-200之间有多少个素数，并输出所有素数。

// 2.程序分析：判断素数的方法：用一个数分别去除2，如果能被整除，则表明此数不是素数，反之是素数。

// 3.程序源代码：
//===================================
// 1.利用条件运算符的嵌套来完成此题：

// 学习成绩>=90分的同学用A表示，60-89分之间的用B表示，60分以下的用C表示。

// 2.程序分析：(a>b)?a:b这是条件运算符的基本例子。

// 3.程序源代码：
//===================================
//===================================

func main() {
	//===================================
	for i := 1; i < 11; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%c%c", 219, 219)
		}
		fmt.Println()
	}
	var a rune = 176
	var b rune = 219
	fmt.Printf("%c%c%c%c%c\n", b, a, a, a, b)
	fmt.Printf("%c%c%c%c%c\n", a, b, a, b, a)
	fmt.Printf("%c%c%c%c%c\n", a, a, b, a, a)
	fmt.Printf("%c%c%c%c%c\n", a, b, a, b, a)
	fmt.Printf("%c%c%c%c%c\n", b, a, a, a, b)
	//===================================
	// var n int
	// fmt.Println("请输入数字。。。")
	// fmt.Scan(&n)
	// switch {
	// case n >= 90:
	// 	fmt.Println("A")
	// case n <= 89 && n >= 60:
	// 	fmt.Println("B")
	// default:
	// 	fmt.Println("C")
	// }
	//===================================
	// for i := 101; i < 200; i++ {
	// 	isFlag := false

	// 	for j := 2; j < 100; j++ {
	// 		if i%j == 0 {
	// 			isFlag = true
	// 		}

	// 	}
	// 	if !isFlag {
	// 		fmt.Println(i)
	// 	}
	// }

	//===================================
	// n, sum := 2, 0
	// h := 2
	// for i := 1; i < 5; i++ {
	// 	n = n*10 + h
	// 	sum += n
	// 	fmt.Println(n)
	// }
	//===================================
	// h := 100
	// r, sum := 100, 0
	// for i := 0; i < 10; i++ {
	// 	h = h / 2
	// 	sum += h * 2
	// }
	// fmt.Println(sum + r)
	//===================================
	// var x, y int
	// y = 1
	// for day := 9; day > 0; day-- {
	// 	x = (y + 1) * 2
	// 	y = x
	// }

	//===================================
	// a, b, c := 2, 1, 0
	// for i := 1; i < 20; i++ {
	// 	c += a / b
	// 	t := a
	// 	a = a + b
	// 	b = t
	// }
	// fmt.Println(c)
	// for i := 1; i < 20; i++ {
	// 	a, b := num(i)
	// 	fmt.Printf("分子：%d，分母:%d \n", a, b)
	// }
	//===================================
	// sum := 0
	// for i := 1; i < 21; i++ {
	// 	count := 1
	// 	for j := 1; j < i; j++ {
	// 		count *= i * j
	// 		fmt.Println(j)
	// 	}
	// 	sum += count
	// 	fmt.Println("dddddddddddddd")

	// }

	// fmt.Println(float64(sum))
	// a, b := 1, 0
	// for i := 1; i < 22; i++ {
	// 	a = a * i
	// 	b = a + b
	// }
	// fmt.Println(b)

	//===================================

}
